package com.passive.lock.utils;

import java.util.ArrayList;
import java.util.List;

import com.passive.lock.model.po.TAreainfo;
import com.passive.lock.model.vo.TAreainfoVo;

public class TreeNodeUtil {
	/**
	    * @Title: getfatherNode
	    * @Description 方法描述: 父节点
	    * @param 设定文件： @param treeDataList
	    * @param 设定文件： @return    
	    * @return 返回类型：List<TAreainfoVo>    
	    * @throws
	    * @date 最后修改时间：2015年6月9日 下午6:39:26
	    */
	    public final static List<TAreainfoVo> getfatherNode(List<TAreainfoVo> treeDataList) {
	        List<TAreainfoVo> newTreeDataList = new ArrayList<TAreainfoVo>();
	        for (TAreainfoVo TAreainfoVo : treeDataList) {
	            if(TAreainfoVo.getParentid() == 0) {
	                //获取父节点下的子节点
	            	//TAreainfoVo TAreainfoVo = new TAreainfoVo();
	                TAreainfoVo.setChildren(getChildrenNode(TAreainfoVo.getId(),treeDataList));
	                TAreainfoVo.setStatus(0);
	                newTreeDataList.add(TAreainfoVo);
	            }
	        }
	        return newTreeDataList;
	    }
	     
	    /**
	    * @Title: getChildrenNode
	    * @Description 方法描述: 子节点
	    * @param 设定文件： @param pid
	    * @param 设定文件： @param treeDataList
	    * @param 设定文件： @return    
	    * @return 返回类型：List<TAreainfoVo>    
	    * @throws
	    * @date 最后修改时间：2015年6月9日 下午6:39:50
	    */
	    private final static List<TAreainfoVo> getChildrenNode(int pid , List<TAreainfoVo> treeDataList) {
	        List<TAreainfoVo> newTreeDataList = new ArrayList<TAreainfoVo>();
	        for (TAreainfoVo TAreainfoVo : treeDataList) {
	            if(TAreainfoVo.getParentid() == 0)  continue;
	            //这是一个子节点
	            if(TAreainfoVo.getParentid().equals(pid)){
	                //递归获取子节点下的子节点
	            	//TAreainfoVo TAreainfoVo = new TAreainfoVo();
	                TAreainfoVo.setChildren(getChildrenNode(TAreainfoVo.getId() , treeDataList));
	                newTreeDataList.add(TAreainfoVo);
	            }
	        }
	        return newTreeDataList;
	    }
}
